package cn.group7.padserver.dao;

import cn.group7.padserver.pojo.Knowledge;
import cn.group7.padserver.pojo.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author 谷汉斌
 * @description 用户数据访问接口
 * @createTime 2024/7/22 下午8:18
 */
@Mapper
public interface UserDao {
    /**
     * 根据用户名查询用户
     *
     * @param userName 用户名
     * @return 用户
     */
    User selectByPrimaryKey(String userName);

    /**
     * 查询所有用户
     *
     * @return 用户列表
     */
    List<User> selectAll();

    /**
     * 插入用户
     *
     * @param user 用户
     * @return 插入结果
     */
    int insertSelective(User user);

    /**
     * 更新用户
     *
     * @param user 用户
     * @return 更新结果
     */
    int updateByPrimaryKeySelective(User user);

    /**
     * 删除用户
     *
     * @param userName 用户名
     * @return 删除结果
     */
    int deleteByPrimaryKey(String userName);

    /**
     * 分页查询用户
     *
     * @param map 查询参数
     * @return 用户列表
     */
    List<User> queryUserByPage(Map<String, Object> map);

    /**
     * 查询用户总数
     *
     * @param map 查询参数
     * @return 用户总数
     */
    Integer selectTotal(Map<String, Object> map);

    /**
     * 根据关键字查询用户
     *
     * @param map 查询参数
     * @return 用户列表
     */
    List<Knowledge> selectByKeys(Map<String, Object> map);
}
